<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>递归</title>
</head>
<body>
  <script>
   /*
      递归：
        - 函数调用自身被称为递归
        - 作用和循环基本一致

      用递归的思想求5的阶乘？
        5！= 4！x 5
           = 3! x 4 x 5
           = 2! x 3 x 4 x 5
           = 1! x 2 x 3 x 4 x 5

      编写递归的要点有俩个
        - 基线条件：终止条件
        - 递归条件：如何对问题进行拆分
   */

   function fn(num) {
    // 1.基线条件
    if(num === 1) {
      return 1
    }
    // 2.递归条件
    return fn(num-1) * num
   }
   const res = fn(5)
   console.log(res)

  </script>
</body>
</html>